package com.gupaoedu.kafka.kafkapractice.springboot;

import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Component;

import java.util.Optional;

/**
 * 腾讯课堂搜索【咕泡学院】
 */
@Component
public class GpKafkaConsumer {

    /**
     * 用的同一个topic ，就是 test
     */
    @KafkaListener(topics = {"test","first_topic"})
    public void listener(ConsumerRecord record){
        //这个java8的语法。
        Optional msg=Optional.ofNullable(record.value());
        //如果值存在则 isPresent()方法会返回 true，调用 get() 方法会返回该对象
        if(msg.isPresent()){
            System.out.println(msg.get());
        }
    }

    //关于optional在判断空指针时候的用法，如下的例子：

    //之前是：
    /*SysUser user = getUserById(id);
	if (user != null) {
        String username = user.getUsername();
        System.out.println("Username is: " + username); // 使用 username
    }*/

    //现在是：  就是用optional包装了一下
    /*Optional<SysUser> user = Optional.ofNullable(getSysUserById(id));
	if (user.isPresent()) {
        String username = user.get().getUsername();
        System.out.println("Username is: " + username); // 使用 username
    }*/








}
